package com.dhcc.DRGsHosp.application;

//import java.util.Calendar;
import java.util.List;
import java.util.Map;



/**
 * @title		:ICDApplication.java
 * @description	:
 * @author		:lileizheng
 * @date		:2015年8月12日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface ICDApplication {

	/**
	 * @methodname    :matchICD
	 * @description   :对照过程
	 * @param         :
	 * @author        :lileizheng
	 * @param icdType 
	 * @return        :
	 * @date          :2016年6月29日
	 */
	public int matchICD(String icdVersion, String icdType);

	/**
	 * @methodname    :getICDMatching
	 * @description   :获取匹配的ICD列表
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月29日
	 */
	public List<Map<String, Object>> getICDMatching(Map<String, Object> param);

	/**
	 * @methodname    :getICDMatchResult
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param icdVersion 
	 * @return        :
	 * @date          :2016年6月29日
	 */
	public List<Object[]> getICDMatchResult(String icdType, String depCode, String icdVersion);
	
	/**
	 * @methodname    :getBJICDCount
	 * @description   :获取北京ICD的数目
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月29日
	 */
	public int getBJICDCount(String icdVersion, String icdType);

	/**
	 * @methodname    :getBJICD
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月29日
	 */
	List<Object[]> getBJICD(String icdType, String icdVersion, String icdValue, String icdValue1);

	/**
	 * @methodname    :updateICDMatching
	 * @description   : 更新对照
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月30日
	 */
	public void updateICDMatching(Map<String, Object> json);

	/**
	 * @methodname    :editLog
	 * @description   :编辑日志保存
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月30日
	 */
	public void editLog(Map<String, Object> json);

	/**
	 * @methodname    :getEditLog
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月30日
	 */
	public List<Map<String, Object>> getEditLog(String hICDCode, String icdVersion);

	/**
	 * @methodname    :importICDMatching
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param icdType 
	 * @return        :
	 * @date          :2016年8月26日
	 */
	Map<String, Integer> importICDMatching(String icdType,Map<String, Object> json);
	
	/**
	 * @methodname    :importICDMatchingPlatform
	 * @description   : 数据批量导入(以hosp_icd_code + drg_icd_version为唯一判断条件）对照平台用
	 * @author        :qiaoyilong
	 * @date          :2018年11月16日
	 */
	Map<String, Integer> importICDMatchingPlatform(String icdType,Map<String, Object> json);

	/**
	 * @methodname    :getICDMatchResultTable_D
	 * @description   :获取诊断结果数据
	 * @param         :
	 * @author        :lileizheng
	 * @param isOnlyMatch 
	 * @return        :
	 * @date          :2017年3月1日
	 */
	public List<Map<String, Object>> getICDMatchResultTable_D(String isOnlyMatch);

	/**
	 * @methodname    :getICDMatchResultTable_O
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2017年3月2日
	 */
	public List<Map<String, Object>> getICDMatchResultTable_O(String isOnlyMatch);

	public List<Map<String, Object>> findDescByCode(String code, String type);

	public Object findBJDescByCode(String code, String type, String icdVersion);

	public void batchSummitIcd(String icdType, String matchType, String icdVersion);

	public Object findBjIcdCode(String icdVersion, String icdType);


	/**
	 * 
	 *  updateIsOper.  
	 *  @Description：更新对照表中的手术/操作字段
	 *  @Author ZouYiyu 
	 *  @Date:2017年10月25日下午12:47:33
	 */
	public void updateIsOper(String icdVersion);

	/**
	 * 
	 *  updateIsOperOne.  
	 *  @Description：更新单条手术icd的手术/操作字段
	 *  @Author ZouYiyu
	 *  @param dto 
	 *  @Date:2017年10月25日下午3:19:17
	 */
	public void updateIsOperOne(Map<String, Object> dto);

	/**
	 * 
	 *  updateMrIsOper.  
	 *  @Description：更新手术表中的手术/操作字段
	 *  @Author ZouYiyu
	 *  @param pMainIndex
	 *  @Date:2017年10月26日上午9:44:39
	 */
	void updateMrIsOper(String pMainIndex,String operIcd);

	/**
	 * 
	 *  findIdByOutDate.  
	 *  @Description：根据出院日期查询主键（有手术）
	 *  @Author ZouYiyu
	 *  @param dateFrom
	 *  @param dateTo
	 *  @return 
	 *  @Date:2017年10月26日上午10:58:32
	 */
	List<Map<String, Object>> findIdByOutDate(String dateFrom, String dateTo);

	/**
	 * 
	 *  getOperIcd.  
	 *  @Description：获取手术icd版本
	 *  @Author ZouYiyu
	 *  @return 
	 *  @Date:2017年11月1日下午6:10:08
	 */
	String getOperIcd();

	/**
	 * 
	 *  updateOperation.  
	 *  @Description：更新手术表中的is_oper字段
	 *  @Author ZouYiyu
	 *  @param icdVersion 
	 *  @Date:2017年11月16日下午12:52:17
	 */
	public void updateOperation(String icdVersion);

	/**
	 * 
	 *  operDicType.  
	 *  @Description：查询数据库中icd字典版本
	 *  @Author ZouYiyu
	 *  @param icdType
	 *  @return 
	 *  @Date:2017年11月16日下午5:26:32
	 */
	public List<Map<String, Object>> operDicType(String icdType);
	
	/**
	 * 
	 * @methodname    :getNoCompareCase
	 * @description   : 根据未对照上诊断编码查病例明细
	 * @param         :
	 * @author        :sulina
	 * @param icdType2 
	 * @return        :
	 * @date          :2018年11月15日
	 */
	public List<Map<String, Object>> getNoCompareCase(String icdCode,String icdDesc, String icdType);

	/**
	 * @description 查找诊断字典
	 * @param condition
	 * @return
	 */
	List<Map<String, Object>> findDiags(String condition);

	/**
	 * @description 查找手术字典
	 * @param condition
	 * @return
	 */
	List<Map<String, Object>> findOpers(String condition);

}
